package br.edu.ifrn.servlets;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import br.edu.ifrn.beans.Aluno;
import br.edu.ifrn.beans.Estagio;
import br.edu.ifrn.persistencia.AlunoDAO;
import br.edu.ifrn.persistencia.EstagioDAO;

@SuppressWarnings("serial")
public class AlunoServlet extends HttpServlet {
	private HttpSession sessao;
	private AlunoDAO alunoNoBanco = new AlunoDAO();
	EstagioDAO estagiodoBanco = new EstagioDAO();

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		sessao = req.getSession();
		sessao.removeAttribute("erroAluno");
		addAluno(req, resp);

	}

	private void addAluno(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		RequestDispatcher jsp;
		sessao.removeAttribute("erroAluno");
		if (req.getParameter("senha1").equals(req.getParameter("senha2"))) {
			Aluno novoAluno = new Aluno();

			novoAluno.setMatricula(req.getParameter("matricula"));
			novoAluno.setNome(req.getParameter("nome"));
			novoAluno.setTelefone(req.getParameter("telefone"));
			novoAluno.setCpf(req.getParameter("cpf"));
			novoAluno.setRg(req.getParameter("rg"));
			novoAluno.setLogradouro(req.getParameter("logradouro"));
			novoAluno.setNumero(req.getParameter("numero"));
			novoAluno.setBairro(req.getParameter("bairro"));
			novoAluno.setCidade(req.getParameter("cidade"));
			novoAluno.setUF(req.getParameter("uf"));
			novoAluno.setComplemento(req.getParameter("complemento"));
			novoAluno.setEmail(req.getParameter("email"));
			novoAluno.setHabilidades(req.getParameter("habilidades"));
			novoAluno.setNomePai(req.getParameter("nomePai"));
			novoAluno.setProfissaoPai(req.getParameter("profissaoPai"));
			novoAluno.setNomeMae(req.getParameter("nomeMae"));
			novoAluno.setProfissaoMae(req.getParameter("profissaoMae"));
			novoAluno.setSenha(req.getParameter("senha1"));

			alunoNoBanco.inserirAluno(novoAluno);
			sessao.setAttribute("aluno", novoAluno);
			
			String mensagem = "Cadastro realizado com sucesso";
			sessao.setAttribute("mensagem", mensagem);
			
			jsp = req.getRequestDispatcher("alunos.jsp");
			jsp.forward(req, resp);

		} else {
			String erroAluno = "As senhas digitadas foram diferentes";
			sessao.setAttribute("erroAluno", erroAluno);
			jsp = req.getRequestDispatcher("novoaluno.jsp");
			jsp.forward(req, resp);
		}
	}

	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
//		sessao.removeAttribute("mensagem");
		sessao = req.getSession();
		logar(req, resp);

	}

	private void logar(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		RequestDispatcher jsp;
		Aluno aluno = alunoNoBanco.logar(req.getParameter("matricula"), req
				.getParameter("senha1"));
		
		
		
		if (aluno == null) {
			String erroAluno = "Usuario Invalido";
			sessao.setAttribute("erroAluno", erroAluno);
			jsp = req.getRequestDispatcher("aluno.jsp");
			jsp.forward(req, resp);
		} else {
			sessao.removeAttribute("erroAluno");
			sessao.setAttribute("aluno", aluno);
			String mensagem = "Bem-vindo";
			sessao.setAttribute("mensagem", mensagem);
			List<Estagio> estagios = estagiodoBanco.listarEstagiosPorMatricula(req.getParameter("matricula"));
			sessao.setAttribute("estagios", estagios);
			
			jsp = req.getRequestDispatcher("alunos.jsp");
			jsp.forward(req, resp);
		}
	}
}